library(tidyverse) # dplyr, part of tidyverse, has spread() & gather()
[37m-- [1mAttaching packages[22m --------------------------------------- tidyverse 1.2.1 --[39m
[37m[32mv[37m [34mggplot2[37m 3.1.0 [32mv[37m [34mpurrr [37m 0.2.5
[32mv[37m [34mtibble [37m 2.0.1 [32mv[37m [34mdplyr [37m 0.7.8
[32mv[37m [34mtidyr [37m 0.8.2 [32mv[37m [34mstringr[37m 1.3.1
[32mv[37m [34mreadr [37m 1.3.1 [32mv[37m [34mforcats[37m 0.3.0[39m
[37m-- [1mConflicts[22m ------------------------------------------ tidyverse_conflicts() --
[31mx[37m [34mdplyr[37m::[32mfilter()[37m masks [34mstats[37m::filter()
[31mx[37m [34mdplyr[37m::[32mlag()[37m masks [34mstats[37m::lag()[39m
library(plotly)
Attaching package: 㤼㸱plotly㤼㸲
The following object is masked from 㤼㸱package:ggplot2㤼㸲:
last_plot
The following object is masked from 㤼㸱package:stats㤼㸲:
filter
The following object is masked from 㤼㸱package:graphics㤼㸲:
layout
Data from fiveThirtyEight.com
trump <- read_csv("https://projects.fivethirtyeight.com/trump-approval-data/approval_topline.csv",
col_types = cols(modeldate = col_date(format = "%m/%d/%Y"),
timestamp = col_datetime(format = "%H:%M:%S %d %b %Y ")))
trump
Munge data
allpolls <- trump %>%
filter(subgroup == "All polls")
allpolls
ggplot
ts_4_ggpltly <- ggplot(allpolls, aes(x = modeldate)) +
geom_line(aes(y = approve_estimate), color = "forestgreen") +
geom_line(aes(y = disapprove_estimate), color = "firebrick")
ts_4_ggpltly

ggplotly(ts_4_ggpltly)
# Example from tk_ts documentation
data_tbl <- tibble::tibble(
date = seq.Date(as.Date("2016-01-01"), by = 1, length.out = 5),
x = rep("chr values", 5),
y = cumsum(1:5),
z = cumsum(11:15) * rnorm(1))
data_tbl
tk_ts(data_tbl, start = 2016)
# Working but the x axis is bonk
ap_4_dy <- allpolls %>%
select(modeldate, approve_estimate, disapprove_estimate) %>%
tk_ts(start = 20170201)
ap_4_dy <- allpolls %>%
select(modeldate, approve_estimate, disapprove_estimate) %>%
#tk_ts()
tk_ts(start = 2017, freq = 365)
ap_4_dy
#idx <- tk_index(allpolls)
This is what was working, even with the bonk x axis
ap_4_dy %>%
dygraph() %>%
dyRangeSelector(dateWindow = c("2017-02-01", "2018-11-30"))
# from dygraph documentation
class(mdeaths)
head(mdeaths)
lungDeaths <- cbind(mdeaths, fdeaths)
dygraph(lungDeaths)
LS0tDQp0aXRsZTogInRydW1wIGFwcHJvdmFsIHJhdGluZyAtLSB0aW1lIHNlcmllcyINCmF1dGhvcjogIkpvaG4gTGl0dGxlIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0KYWJzdHJhY3Q6ICJQdXQgb3V0IGEgdGltZXNlcmllcyBncmFwaCB2aWEgZ2dwbG90MnBsb3RseSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpICAjIGRwbHlyLCBwYXJ0IG9mIHRpZHl2ZXJzZSwgIGhhcyBzcHJlYWQoKSAmIGdhdGhlcigpIA0KbGlicmFyeShwbG90bHkpDQpgYGANCg0KDQojIyBEYXRhIGZyb20gZml2ZVRoaXJ0eUVpZ2h0LmNvbQ0KDQotIFthcHByb3ZhbCByYXRpbmdzXShodHRwczovL2dpdGh1Yi5jb20vZml2ZXRoaXJ0eWVpZ2h0L2RhdGEvdHJlZS9tYXN0ZXIvdHJ1bXAtYXBwcm92YWwtcmF0aW5ncykNCi0gWyoqdG9wbGluZSoqXShodHRwczovL3Byb2plY3RzLmZpdmV0aGlydHllaWdodC5jb20vdHJ1bXAtYXBwcm92YWwtZGF0YS9hcHByb3ZhbF90b3BsaW5lLmNzdikNCg0KDQpgYGB7cn0NCnRydW1wIDwtIHJlYWRfY3N2KCJodHRwczovL3Byb2plY3RzLmZpdmV0aGlydHllaWdodC5jb20vdHJ1bXAtYXBwcm92YWwtZGF0YS9hcHByb3ZhbF90b3BsaW5lLmNzdiIsIA0KICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyhtb2RlbGRhdGUgPSBjb2xfZGF0ZShmb3JtYXQgPSAiJW0vJWQvJVkiKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IGNvbF9kYXRldGltZShmb3JtYXQgPSAiJUg6JU06JVMgJWQgJWIgJVkgIikpKQ0KdHJ1bXANCmBgYA0KDQojIyBNdW5nZSBkYXRhDQoNCmBgYHtyfQ0KYWxscG9sbHMgPC0gdHJ1bXAgJT4lIA0KICBmaWx0ZXIoc3ViZ3JvdXAgPT0gIkFsbCBwb2xscyIpDQphbGxwb2xscw0KYGBgDQoNCg0KDQojIyBnZ3Bsb3QgDQoNCmBgYHtyfQ0KdHNfNF9nZ3BsdGx5IDwtIGdncGxvdChhbGxwb2xscywgYWVzKHggPSBtb2RlbGRhdGUpKSArDQogIGdlb21fbGluZShhZXMoeSA9IGFwcHJvdmVfZXN0aW1hdGUpLCBjb2xvciA9ICJmb3Jlc3RncmVlbiIpICsNCiAgZ2VvbV9saW5lKGFlcyh5ID0gZGlzYXBwcm92ZV9lc3RpbWF0ZSksIGNvbG9yID0gImZpcmVicmljayIpDQoNCnRzXzRfZ2dwbHRseQ0KYGBgDQoNCmBgYHtyfQ0KZ2dwbG90bHkodHNfNF9nZ3BsdGx5KQ0KYGBgDQoNCg0KDQpgYGAgcg0KIyBFeGFtcGxlIGZyb20gdGtfdHMgZG9jdW1lbnRhdGlvbg0KZGF0YV90YmwgPC0gdGliYmxlOjp0aWJibGUoDQogICAgZGF0ZSA9IHNlcS5EYXRlKGFzLkRhdGUoIjIwMTYtMDEtMDEiKSwgYnkgPSAxLCBsZW5ndGgub3V0ID0gNSksDQogICAgeCAgICA9IHJlcCgiY2hyIHZhbHVlcyIsIDUpLA0KICAgIHkgICAgPSBjdW1zdW0oMTo1KSwNCiAgICB6ICAgID0gY3Vtc3VtKDExOjE1KSAqIHJub3JtKDEpKQ0KDQpkYXRhX3RibA0KDQp0a190cyhkYXRhX3RibCwgc3RhcnQgPSAyMDE2KQ0KYGBgDQoNCg0KDQpgYGAgcg0KIyBXb3JraW5nIGJ1dCB0aGUgeCBheGlzIGlzIGJvbmsNCmFwXzRfZHkgPC0gYWxscG9sbHMgJT4lIA0KICBzZWxlY3QobW9kZWxkYXRlLCBhcHByb3ZlX2VzdGltYXRlLCBkaXNhcHByb3ZlX2VzdGltYXRlKSAlPiUgDQogIHRrX3RzKHN0YXJ0ID0gMjAxNzAyMDEpIA0KDQphcF80X2R5IDwtIGFsbHBvbGxzICU+JSANCiAgc2VsZWN0KG1vZGVsZGF0ZSwgYXBwcm92ZV9lc3RpbWF0ZSwgZGlzYXBwcm92ZV9lc3RpbWF0ZSkgJT4lIA0KICAjdGtfdHMoKQ0KICB0a190cyhzdGFydCA9IDIwMTcsIGZyZXEgPSAzNjUpIA0KDQphcF80X2R5DQoNCiNpZHggPC0gdGtfaW5kZXgoYWxscG9sbHMpDQpgYGANCg0KDQpgYGAgciANClRoaXMgaXMgd2hhdCB3YXMgd29ya2luZywgZXZlbiB3aXRoIHRoZSBib25rIHggYXhpcw0KYXBfNF9keSAlPiUgDQogIGR5Z3JhcGgoKSAlPiUgDQogIGR5UmFuZ2VTZWxlY3RvcihkYXRlV2luZG93ID0gYygiMjAxNy0wMi0wMSIsICIyMDE4LTExLTMwIikpDQoNCmBgYA0KDQoNCg0KYGBgIHINCiMgZnJvbSBkeWdyYXBoIGRvY3VtZW50YXRpb24NCmNsYXNzKG1kZWF0aHMpDQpoZWFkKG1kZWF0aHMpDQpsdW5nRGVhdGhzIDwtIGNiaW5kKG1kZWF0aHMsIGZkZWF0aHMpDQpkeWdyYXBoKGx1bmdEZWF0aHMpDQpgYGANCg0KDQoNCg0KDQo=